package com.fowo.api.model.amazon.order.list;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ContentStyle;
import com.alibaba.excel.enums.poi.HorizontalAlignmentEnum;
import com.fowo.api.common.validator.EnumsString;
import javax.validation.constraints.*;
import lombok.Data;

/** 亚马逊订单 导入导出辅助模型 */
@Data
public class AmazonOrderListExcelPo {

  @Size(max = 50, message = "店铺长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "店铺")
  private String sellerName;

  @Size(max = 50, message = "国家长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "国家")
  private String country;

  @Size(max = 50, message = "订单号长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "订单号")
  private String amazonOrderId;

  @Size(max = 50, message = "买家姓名长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "买家姓名")
  private String buyerName;

  @Size(max = 50, message = "买家邮件长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "买家邮件")
  private String buyerEmail;

  @Size(max = 50, message = "订单总金额长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "订单总金额")
  private String orderTotalAmount;

  @Size(max = 50, message = "订购时间长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "订购时间")
  private String purchaseDateLocal;

  @Size(max = 50, message = "备注长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "备注")
  private String remark;

  @EnumsString(
    value = { "Unshipped", "Shipped" },
    message = "状态的可用值为 “Unshipped”, “Shipped” 其中之一"
  )
  @Size(max = 50, message = "状态长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "状态")
  private String orderStatus;

  @Size(max = 50, message = "发货时限长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "发货时限")
  private String earliestShipDate;

  @Size(max = 50, message = "发货时限（UTC）长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "发货时限（UTC）")
  private String earliestShipDateUtc;

  @EnumsString(
    value = { "AFN", "MFN" },
    message = "发货渠道的可用值为 “AFN”, “MFN” 其中之一"
  )
  @Size(max = 50, message = "发货渠道长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "发货渠道")
  private String fulfillmentChannel;

  @EnumsString(
    value = { "退款", "未退款", "退款完成" },
    message = "退款状态的可用值为 “退款”, “未退款”, “退款完成” 其中之一"
  )
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "退款状态")
  private String isReturn;

  @EnumsString(
    value = { "是", "否" },
    message = "是否换货订单的可用值为 “是”, “否” 其中之一"
  )
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "是否换货订单")
  private String isReplacementOrder;

  @EnumsString(
    value = { "换货" },
    message = "是否已换货的可用值为 “换货” 其中之一"
  )
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "是否已换货")
  private String isReplacedOrder;

  @EnumsString(
    value = { "B2B" },
    message = "是否为B2B订单的可用值为 “B2B” 其中之一"
  )
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "是否为B2B订单")
  private String isBusinessOrder;

  @Size(max = 50, message = "店铺编码长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "店铺编码")
  private String shopCode;
}
